import api from './api.js'

/**
 * 商品相关API服务
 */
const foodService = {
    /**
     * 搜索商品
     * @param {Object} params - 搜索参数
     * @param {string} params.keyword - 搜索关键词
     * @param {number} params.page - 页码，默认1
     * @param {number} params.limit - 每页数量，默认10
     * @param {number} params.categoryId - 分类ID
     * @param {number} params.merchantId - 商家ID
     * @param {string} params.sortBy - 排序字段 (price, rating, sales)
     * @param {string} params.sortOrder - 排序方向 (asc, desc)
     * @param {number} params.minPrice - 最低价格
     * @param {number} params.maxPrice - 最高价格
     * @returns {Promise} 搜索结果
     */
    async searchFoods(params = {}) {
        const queryParams = {
            page: params.page || 1,
            limit: params.limit || 10,
            ...params
        }

        // 根据文档，搜索商品无需token
        return await api.get('/foods/search', queryParams, { needAuth: false })
    },

    /**
     * 获取商品详情
     * @param {number} foodId - 商品ID
     * @returns {Promise} 商品详情数据
     */
    async getFoodDetail(foodId) {
        // 根据文档，商品详情无需token
        return await api.get(`/foods/${foodId}`, {}, { needAuth: false })
    },

    /**
     * 获取商品分类列表
     * @returns {Promise} 分类列表
     */
    async getFoodCategories() {
        // 根据文档，商品分类无需token
        return await api.get('/food-categories', {}, { needAuth: false })
    },

    /**
     * 获取推荐商品
     * @param {Object} params - 参数
     * @param {number} params.limit - 数量限制，默认10
     * @returns {Promise} 推荐商品列表
     */
    async getRecommendedFoods(params = {}) {
        return await this.searchFoods({
            keyword: '', // 空关键词搜索所有商品
            limit: params.limit || 10
        })
    },

    /**
     * 获取热门商品
     * @param {Object} params - 参数
     * @param {number} params.limit - 数量限制，默认10
     * @returns {Promise} 热门商品列表
     */
    async getHotFoods(params = {}) {
        return await this.searchFoods({
            keyword: '', // 空关键词搜索所有商品
            limit: params.limit || 10
        })
    }
}

export default foodService
